import request from '@/config/axios'
import type { Dayjs } from 'dayjs';

/** 自定义OID信息 */
export interface CustomOid {
          customoidId: number; // ID
          deviceId?: number; // 设备ID
          customoidDescr: string; // 描述
          customoidDeleted?: number; // 0未删除1删除
          customoidCurrent: number; // 当前采集到的 OID 值，经过乘数/除数处理后的实际值
          customoidPrev: number; // 上一次采集到的 OID 值
          customoidOid: string; // OID
          customoidDatatype?: string; // 数据类型，常见值包括：	• GAUGE	（瞬时值，如温度）	• COUNTER	（计数器，如流量）	• DERIVE	（差值）	• ABSOLUTE	（绝对值）
          customoidUnit: string; // 单位标识，如 %	、°C	、RPM
          customoidDivisor?: number; // 采集值除以此数得到实际值
          customoidMultiplier?: number; // 采集值乘以此数得到实际值
          customoidLimit: number; // 告警上限阈值。当值超过此数且 customoid_alert=1	 时触发告警。
          customoidLimitWarn: number; // 警告上限阈值。超过此值但未达 limit	 时触发警告。
          customoidLimitLow: number; // 告警下限阈值。当值低于此数且 customoid_alert=1	 时触发告警。
          customoidLimitLowWarn: number; // 警告下限阈值。低于此值但未达 limit_low	 时触发警告。
          customoidAlert?: number; // 是否启用告警：0=不启用，1=启用。
          customoidPassed?: number; // 当前值是否通过阈值检查：0=未通过（告警或警告），1=通过（正常
          lastupdate?: string | Dayjs; // 最后更新时间戳
          userFunc: string; // 用户自定义处理函数名
  }

// 自定义OID API
export const CustomOidApi = {
  // 查询自定义OID分页
  getCustomOidPage: async (params: any) => {
    return await request.get({ url: `/business/custom-oid/page`, params })
  },

  // 查询自定义OID详情
  getCustomOid: async (id: number) => {
    return await request.get({ url: `/business/custom-oid/get?id=` + id })
  },

  // 新增自定义OID
  createCustomOid: async (data: CustomOid) => {
    return await request.post({ url: `/business/custom-oid/create`, data })
  },

  // 修改自定义OID
  updateCustomOid: async (data: CustomOid) => {
    return await request.put({ url: `/business/custom-oid/update`, data })
  },

  // 删除自定义OID
  deleteCustomOid: async (id: number) => {
    return await request.delete({ url: `/business/custom-oid/delete?id=` + id })
  },

  /** 批量删除自定义OID */
  deleteCustomOidList: async (ids: number[]) => {
    return await request.delete({ url: `/business/custom-oid/delete-list?ids=${ids.join(',')}` })
  },

  // 导出自定义OID Excel
  exportCustomOid: async (params) => {
    return await request.download({ url: `/business/custom-oid/export-excel`, params })
  },
}